package com.xmmj.common.converter

import retrofit2.Converter
import okhttp3.ResponseBody
import com.alibaba.fastjson.JSON
import java.lang.reflect.Type

/**
 * 响应体转换器
 */
class FastJsonResponseBodyConverter<T> internal constructor(private val type: Type) :
    Converter<ResponseBody, T> {

    override fun convert(value: ResponseBody): T {
        val json = value.string()
        val bean = JSON.parseObject(json, ResponseBean::class.java)
        return if (bean.code == 0) {
            //请求码等于0表示请求成功（具体根据实际的接口业务来定），直接返回data层实体数据就好
            JSON.parseObject(bean.data, type)
        } else {
            throw ResponseError(bean)
        }
    }
}